package conf_handler

import (
	"peilian-api/app/global/bind"
	"peilian-api/app/global/errors"
	"peilian-api/app/model"
	"peilian-api/app/services/conf_service"
	"peilian-api/utils/format"

	"github.com/gin-gonic/gin"
)

// 添加
func AddConstitute(ctx *gin.Context) {
	var car model.ConstituteAddRes
	if err := bind.ShouldBinding(ctx, &car); err != nil {
		format.NewResponseJson(ctx).Err(errors.PublicErrorCode, err.Error())
		return
	}
	err := new(conf_service.ConstituteService).AddConstitute(ctx, car)
	if err != nil {
		format.NewResponseJson(ctx).ErrObj(err.Code, err.Err.Error())
		return
	}
	format.NewResponseJson(ctx).SuccessObj(struct{}{})

}

// 更新
func UpdateConstitute(ctx *gin.Context) {
	var car model.ConstituteUpdateRes
	if err := bind.ShouldBinding(ctx, &car); err != nil {
		format.NewResponseJson(ctx).Err(errors.PublicErrorCode, err.Error())
		return
	}
	err := new(conf_service.ConstituteService).UpdateConstitute(ctx, car)
	if err != nil {
		format.NewResponseJson(ctx).ErrObj(err.Code, err.Err.Error())
		return
	}
	format.NewResponseJson(ctx).SuccessObj(struct{}{})

}

// 删除
func DeleteConstitute(ctx *gin.Context) {
	var car model.ServiceId
	if err := bind.ShouldBinding(ctx, &car); err != nil {
		format.NewResponseJson(ctx).Err(errors.PublicErrorCode, err.Error())
		return
	}
	err := new(conf_service.ConstituteService).DeleteConstitute(ctx, car.Id)
	if err != nil {
		format.NewResponseJson(ctx).ErrObj(err.Code, err.Err.Error())
		return
	}
	format.NewResponseJson(ctx).SuccessObj(struct{}{})
}

// 获取侧边栏
func GetConfig(ctx *gin.Context) {

	out, err := new(conf_service.ConstituteService).GetOrganizeConfig(ctx)
	if err != nil {
		format.NewResponseJson(ctx).Err(err.Code, err.Err.Error())
		return
	}
	format.NewResponseJson(ctx).SuccessDataList(len(out), out)
}
